查看原文
其他

通过 Block Store 实现账户无缝迁移

Android Android 开发者 2021-10-19

当拆开新设备精美的包装,揭去全新屏幕的贴膜,将新设备设置完成后,用户以前使用的应用便已经下载到了设备上,这便是全新移动设备的魔法。然而,当用户尝试使用他们的应用,却不得不重新进行认证时,换机的无缝体验便戛然而止。让用户记住账户凭据,并完成账户恢复流程,这带来的阻力会导致用户抛弃旧账户并创建一个新的账户,甚至直接放弃当前的应用。

为了解决这一问题,我们发布了 Block Store API,它使得在新设备中重新登录用户的应用,就像在设置流程中从备份中恢复信息一样简单,这样用户便可以在更换手机后,像没有换机前一样继续使用他们的应用。继续阅读以进一步了解 Block Store,本文将介绍它所带来的好处以及如何利用 Block Store 为用户提供神奇的体验。


什么是 Block Store?



Block Store API 可以让您的应用存储用户凭据,从而可在未来的新设备中取回凭据,并用于重新验证用户。当用户使用一台设备引导另一台设备时,凭据数据就会在设备间传输。



Block Store 的工作原理



  1. 当用户登录您的应用时 (或是在此之后的任何时间),您可以将您为用户生成的身份认证令牌保存至 Block Store。

  2. 当您使用 Block Store 保存令牌后,令牌会被加密并保存在设备的本地存储中。

  3. 当用户使用 "设备到设备" 的恢复流程时,数据会被传输到新设备上。

  4. 如果用户在 "设备到设备" 的恢复时选择同时恢复他们的数据,当用户在新设备上打开您的应用时,Block Store 会为您的应用取回令牌。



为什么要使用 Block Store? 



虽然此 API 为可选接入,但是接入它可以为您的应用带来如下好处:

  • 如果用户不必劳神记住认证凭据,那他们也会更愿意使用唯一且更难以被网络钓鱼的密码。
  • 消除由登录带来的、可能最终导致您用户流失的使用阻力。
  • 集成 Block Store 十分简单,而且无论您的登录方式如何皆可正常工作。
  • Google 会验证用户的身份。


如何在我的应用中添加它?



当用户登录您的应用时,您可以通过调用 storeBytes() 将您为用户生成的身验认证令牌存储至 Block Store。这一操作会将用户的凭据存储到源设备。现在,令牌已被加密并保存到了设备的本地存储中。
<!-- Copyright 2021 Google LLC. SPDX-License-Identifier: Apache-2.0 -->
val client = Blockstore.getClient(this)val token = StoreBytesData.Builder() .setBytes(/* BYTE_ARRAY */) .build()
// storeBytes 应当在用户验证完成之后再调用client.storeBytes(token)).addOnSuccessListener{ result -> Log.d(TAG, “Stored: ${result} bytes”) }

当用户在新设备上完成 "设备到设备" 的恢复流程时,Block Store 会取回您的令牌。由于用户已经同意在恢复流程中恢复您应用的数据,所以此操作无需额外的许可。当用户打开您的应用时,您可以通过调用 retrieveBytes() 从 Block Store 请求您的令牌。取得的令牌可以用于在新设备上保持用户的登录状态。如果调用此接口的应用没有令牌,Block Store 依然会调用 onSuccessListener(),但结果会是空字节。如果您在同一个设备上先后调用 storeBytes()retrieveBytes()retrieveBytes() 会返回先前调用的 storeBytes() 设置的字节。

<!-- Copyright 2021 Google LLC. SPDX-License-Identifier: Apache-2.0 -->
val client = Blockstore.getClient(this)client.retrieveBytes() .addOnSuccessListener { result -> Log.d(TAG, “Retrieved: ${String(result)}”) }
.addOnFailureListener { e -> Log.e(TAG, “Failed to retrieve bytes”, e) }



总结



以上便是开始使用 Block Store 所需的全部信息!点击屏末 | 阅读原文 | 即刻了解更多相关内容。

欢迎您通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!



推荐阅读

如页面未加载,请刷新重试


视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存